package com.jzo2o.canal.constants;

/**
 * Canal操作类型常量类，定义Canal监听的数据库操作类型及相关判断方法
 */
public class OperateType {
    /**
     * 数据库新增操作标识
     */
    public static final String INSERT = "INSERT";

    /**
     * 数据库修改操作标识
     */
    public static final String UPDATE = "UPDATE";

    /**
     * 数据库删除操作标识
     */
    public static final String DELETE = "DELETE";

    /**
     * 判断操作类型是否为"保存类操作"（包含新增和修改）
     * @param operateType 操作类型（如INSERT/UPDATE/DELETE）
     * @return 是保存类操作返回true，否则返回false
     */
    public static boolean isSave(String operateType) {
        return !(!INSERT.equals(operateType) && !UPDATE.equals(operateType));
    }

    /**
     * 判断操作类型是否为Canal可处理的合法类型
     * @param operateType 操作类型（如INSERT/UPDATE/DELETE）
     * @return 是合法可处理类型返回true，否则返回false
     */
    public static boolean canHandle(String operateType) {
        return INSERT.equals(operateType) || UPDATE.equals(operateType) || DELETE.equals(operateType);
    }
}
